package com.itheima.homework;

import java.util.Random;

/**
 * @Author 王加鑫
 * @Date 2021/4/22 21:12
 * @Version 1.0
 * 8、【编号：514】 一个大V直播抽奖，奖品是现金红包，分别有{2,588,888,1000,10000}五个奖金。
 * 请使用代码模拟抽奖，打印出每个奖项，奖项的出现顺序要随机且不重复。打印效果如下：（随机顺序，不一定是下面的顺序）
 * 888元的奖金被抽出
 * 588元的奖金被抽出
 * 10000元的奖金被抽出
 * 1000元的奖金被抽出
 * 2元的奖金被抽出
 */
public class Day05HomeWork08 {

    public static void main(String[] args) {
        //lottery(new int[]{2,588,888,1000,10000});
        getLottery(new int[]{2,588,888,1000,10000});

    }


    /*
    使arr数组中的索引随机且不重复
    从而达到随机抽奖的效果
     */
    public static void lottery(int[] arr){
        //定义随机数
        Random r = new Random();
        //定义一个随机数数组
        int[] arr1 = new int[arr.length];
        for (int i = 0; i < arr1.length; i++) {
            //将随机数放入到随机数数组当中
            arr1[i] = r.nextInt(arr.length);
            //遍历随机数数组,如果有重复的随机数将其回滚
            for (int j= 0;j<i; j++) {
                if(arr1[i] == arr1[j]){
                    //如果随机数有重复的,让其回滚
                    i--;
                }
            }
        }
        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr[arr1[i]] + "元的奖金被抽出");
        }

        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i]);
        }

    }

    /*
   使arr数组中的索引随机且不重复
   从而达到随机抽奖的效果
    */
    public static void getLottery(int[] arr){
        Random random = new Random();
        //抽奖的有效次数
        int count = 0;
        while (true){
            //随机数
            int num = random.nextInt(arr.length);
            //什么时候该跳出循环呢?
            if(count == arr.length){
                break;
            }
            if(arr[num] !=0){
                System.out.println(arr[num] + "元的奖金被抽出");
                //当随机数奖金被抽出,将其赋值为0
                arr[num] = 0;
                count++;
            }
        }



    }

}
